<?php

/*
 * Object/EmployeTemplate.php
 */

namespace RHX\Model\Object;

use Zend\Db\Adapter\Adapter;

class EmployeTemplate {

    public $id;
    public $matricule;
    public $template;
    // Lundi
    public $lundi_code;
    public $lundi_entree;
    public $lundi_sortie;
    public $lundi_pause;
    public $lundi_repas;
    // Mardi
    public $mardi_code;
    public $mardi_entree;
    public $mardi_sortie;
    public $mardi_pause;
    public $mardi_repas;
    // Mercredi
    public $mercredi_code;
    public $mercredi_entree;
    public $mercredi_sortie;
    public $mercredi_pause;
    public $mercredi_repas;
    // Jeudi
    public $jeudi_code;
    public $jeudi_entree;
    public $jeudi_sortie;
    public $jeudi_pause;
    public $jeudi_repas;
    // Vendredi
    public $vendredi_code;
    public $vendredi_entree;
    public $vendredi_sortie;
    public $vendredi_pause;
    public $vendredi_repas;
    // Samedi
    public $samedi_code;
    public $samedi_entree;
    public $samedi_sortie;
    public $samedi_pause;
    public $samedi_repas;
    // Dimanche
    public $dimanche_code;
    public $dimanche_entree;
    public $dimanche_sortie;
    public $dimanche_pause;
    public $dimanche_repas;
    // Heures Prévues
    public $heure_prevues;

    /**
     *
     * @var string
     */
    public $version;
    protected $adapter;

    // Constante

    const EQUAL		 = 0;
    const LESS_THAN	 = -1;
    const GREATER_THAN	 = 1;

    /**
     * Constructeur
     * @param \Zend\Db\Adapter\Adapter $adapter
     * @param array $data
     */
    public function __construct(Adapter $adapter, $data = array()) {
	$this->exchangeArray($data);
	$this->adapter = $adapter;
    }

    /**
     * Remplissage des données
     * @param array $data
     */
    public function exchangeArray($data) {
	$this->id		 = isset($data['id']) ? $data['id'] : null;
	$this->matricule	 = isset($data['matricule']) ? $data['matricule'] : 0;
	$this->template		 = isset($data['template']) ? $data['template'] : 0;
	$this->lundi_code	 = isset($data['lundi_code']) ? $data['lundi_code'] : 3;
	$this->lundi_entree	 = isset($data['lundi_entree']) ? $data['lundi_entree'] : '00:00';
	$this->lundi_sortie	 = isset($data['lundi_sortie']) ? $data['lundi_sortie'] : '00:00';
	$this->lundi_pause	 = isset($data['lundi_pause']) ? $data['lundi_pause'] : 0;
	$this->lundi_repas	 = isset($data['lundi_repas']) ? $data['lundi_repas'] : 0;
	$this->mardi_code	 = isset($data['mardi_code']) ? $data['mardi_code'] : 3;
	$this->mardi_entree	 = isset($data['mardi_entree']) ? $data['mardi_entree'] : '00:00';
	$this->mardi_sortie	 = isset($data['mardi_sortie']) ? $data['mardi_sortie'] : '00:00';
	$this->mardi_pause	 = isset($data['mardi_pause']) ? $data['mardi_pause'] : 0;
	$this->mardi_repas	 = isset($data['mardi_repas']) ? $data['mardi_repas'] : 0;
	$this->mercredi_code	 = isset($data['mercredi_code']) ? $data['mercredi_code'] : 3;
	$this->mercredi_entree	 = isset($data['mercredi_entree']) ? $data['mercredi_entree'] : '00:00';
	$this->mercredi_sortie	 = isset($data['mercredi_sortie']) ? $data['mercredi_sortie'] : '00:00';
	$this->mercredi_pause	 = isset($data['mercredi_pause']) ? $data['mercredi_pause'] : 0;
	$this->mercredi_repas	 = isset($data['mercredi_repas']) ? $data['mercredi_repas'] : 0;
	$this->jeudi_code	 = isset($data['jeudi_code']) ? $data['jeudi_code'] : 3;
	$this->jeudi_entree	 = isset($data['jeudi_entree']) ? $data['jeudi_entree'] : '00:00';
	$this->jeudi_sortie	 = isset($data['jeudi_sortie']) ? $data['jeudi_sortie'] : '00:00';
	$this->jeudi_pause	 = isset($data['jeudi_pause']) ? $data['jeudi_pause'] : 0;
	$this->jeudi_repas	 = isset($data['jeudi_repas']) ? $data['jeudi_repas'] : 0;
	$this->vendredi_code	 = isset($data['vendredi_code']) ? $data['vendredi_code'] : 3;
	$this->vendredi_entree	 = isset($data['vendredi_entree']) ? $data['vendredi_entree'] : '00:00';
	$this->vendredi_sortie	 = isset($data['vendredi_sortie']) ? $data['vendredi_sortie'] : '00:00';
	$this->vendredi_pause	 = isset($data['vendredi_pause']) ? $data['vendredi_pause'] : 0;
	$this->vendredi_repas	 = isset($data['vendredi_repas']) ? $data['vendredi_repas'] : 0;
	$this->samedi_code	 = isset($data['samedi_code']) ? $data['samedi_code'] : 3;
	$this->samedi_entree	 = isset($data['samedi_entree']) ? $data['samedi_entree'] : '00:00';
	$this->samedi_sortie	 = isset($data['samedi_sortie']) ? $data['samedi_sortie'] : '00:00';
	$this->samedi_pause	 = isset($data['samedi_pause']) ? $data['samedi_pause'] : 0;
	$this->samedi_repas	 = isset($data['samedi_repas']) ? $data['samedi_repas'] : 0;
	$this->dimanche_code	 = isset($data['dimanche_code']) ? $data['dimanche_code'] : 3;
	$this->dimanche_entree	 = isset($data['dimanche_entree']) ? $data['dimanche_entree'] : '00:00';
	$this->dimanche_sortie	 = isset($data['dimanche_sortie']) ? $data['dimanche_sortie'] : '00:00';
	$this->dimanche_pause	 = isset($data['dimanche_pause']) ? $data['dimanche_pause'] : 0;
	$this->dimanche_repas	 = isset($data['dimanche_repas']) ? $data['dimanche_repas'] : 0;
	$this->heure_prevues	 = isset($data['heure_prevues']) ? $data['heure_prevues'] : '00:00';
	$this->version		 = isset($data['version']) ? $data['version'] : '1';
    }

    public function getArrayCopy() {
	return get_object_vars($this);
    }

    public function getEmploye() {
	// Table employe
	$table = new \RHX\Model\Table\EmployeTable($this->adapter);

	return $table->get($this->matricule);
    }

    /**
     * Numéro de version du template
     *
     * @return int
     */
    public function getVersion() {
	return strlen($this->version);
    }

    /**
     * Ajouter version
     *
     * @return int version en cours
     */
    public function addVersion() {
	$version	 = $this->version;
	$v		 = substr($version, strlen($version) - 1, 1);
	$this->version .= $v;
	// sauvegarde
	$tableTemplate	 = new \RHX\Model\Table\EmployeTemplateTable($this->adapter);
	$tableTemplate->save($this);

	return $this->getVersion();
    }

}

?>
